package cn.cw.liyebao.service;

import cn.cw.liyebao.domain.TypeInfo;
import cn.cw.liyebao.mapper.TypeInfoMapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

/**
 * @author : caiwen
 * @date :2024/9/6
 * @Description
 */
@Service // 表示这是一个业务层，同时交给springboot来管理
public class SelectDemoService {

    @Autowired
    private TypeInfoMapper typeInfoMapper;

    //现在这个方法是写个测试数据
    public List<TypeInfo> getFirstTypeList() {
        List<TypeInfo> list = new ArrayList<TypeInfo>();
        //通过mybatis-plus 查询分类表中符合要求的数据 。 思路：如果只想查出所有一级分类，要清楚，有个固定条件：parent_id = 0
        QueryWrapper<TypeInfo> wrapper = new QueryWrapper<>();
        wrapper.eq("parent_id",0);//固定值
        List<TypeInfo> typeInfos = typeInfoMapper.selectList(wrapper);


        return typeInfos;

//        // 真实企业开发中，下面的这些数据，是应该从数据库中查询出来
//        TypeInfo t1 = new TypeInfo();
//        t1.setId(1);
//        t1.setTypeName("交通消费");
//        t1.setTypeDesc("包含公交、打车、火车、飞机等消费");
//        list.add(t1);
//        TypeInfo t2 = new TypeInfo();
//        t2.setId(2);
//        t2.setTypeName("饮食消费");
//        t2.setTypeDesc("包含快餐、饮料、火锅等消费");
//        list.add(t2);
//        TypeInfo t3 = new TypeInfo();
//        t3.setId(3);
//        t3.setTypeName("电子产品");
//        t3.setTypeDesc("包含手机、电脑、平板等消费");
//        list.add(t3);


    }

    //这个方法是  根据一级分类的ID 去数据库查所有一级分类下的 二级分类列表
    public List<TypeInfo> getSecondTypeList(Integer firstId) {
        List<TypeInfo> list = new ArrayList<>();
        //根据查询条件来动态查询对应的数据
        QueryWrapper<TypeInfo> wrapper = new QueryWrapper<>();
        wrapper.eq("parent_id",firstId);
        List<TypeInfo> typeInfos = typeInfoMapper.selectList(wrapper);


//        //下面的测试数据 也应该从数据库中查询
//        TypeInfo t1 = new TypeInfo();
//        t1.setId(1);
//        t1.setTypeName("公交车消费");
//        t1.setTypeDesc("坐公交的消费");
//        list.add(t1);

        return typeInfos;
    }
}
